例:SU(2) doubelt, hypercharge +1/2, vectorlike fermion.
mass eigenstate
F[5] == { ClassName -> DMUP, SelfConjugate -> False, Mass -> {MDDM, Internal}, Width -> {WDDM, 6.66}, QuantumNumbers -> {Q -> +1}, PropagatorLabel -> {"~DMUP"}, PropagatorType -> Straight, PropagatorArrow -> Forward, PDG -> {990002}, ParticleName -> {"~DMup"}, AntiParticleName -> {"~DMup~"}, FullName -> {"up-type-DM"} }, F[6] == { ClassName -> DMDOWN, SelfConjugate -> False, Mass -> {MDDM, Internal}, Width -> {WDDM, 6.66}, QuantumNumbers -> {Q -> 0}, PropagatorLabel -> {"~DMDOWN"}, PropagatorType -> Straight, PropagatorArrow -> Forward, PDG -> {990003}, ParticleName -> {"~DMdown"}, AntiParticleName -> {"~DMdown~"}, FullName -> {"down-type-DM"} },gauge eigenstate
F[22] == { ClassName -> DDM, SelfConjugate -> False, Indices -> {Index[SU2D]}, Unphysical -> True, FlavorIndex -> SU2D, QuantumNumbers -> {Y -> 1/2}, Definitions -> { DDM[sp_,1] :> DMUP[sp], DDM[sp_,2] :> DMDOWN[sp] } }
W[1] == { ClassName -> DMsinglet, Chirality -> Left, SelfConjugate -> False, Unphysical -> True },次にこれを4成分にする。ParticleNameをしてよい。
F[21] == { ClassName -> SDM, SelfConjugate -> True, (* because Mojarana *) WeylComponents -> DMsinglet, Mass -> {MSDM, Internal}, Width -> {WSDM, 6.66}, MajoranaPhase -> 0, ParticleName -> "~S", FullName -> "singlet-DM", PDG -> 990012, PropagatorLabel -> "~S", PropagatorType -> S, PropagatorArrow -> Forward }Lagrangianは Weylで書いて、WeylToDiracコマンドを使う。
LSingletW := ( I*(DMsingletbar.sibar[mu].del[DMsinglet, mu]) - (1/2) MMAJOS DMsinglet.DMsinglet - 1/2 MMAJOS DMsingletbar.DMsingletbar ); LSinglet := WeylToDirac[LSingletW]4成分の方を使うと何故かうまくいかない
(Bad Example) LSinglet := (1/2) I*(SDMbar.GA[mu].del[SDM, mu]) - 1/2 MMAJOS SDMbar.SDM;
まず、Weyl fermionを定義する。ParticleName->はしない。
W[1] == { ClassName -> chi, Chirality -> Left, SelfConjugate -> False, Unphysical -> True }, W[2] == { ClassName -> xi, Chirality -> Left, SelfConjugate -> False, Unphysical -> True },次にこれを4成分にする。ParticleNameをしてよい。
F[21] == { ClassName -> SDM, SelfConjugate -> False, WeylComponents -> {chi, xibar}, Mass -> {MSDM, Internal}, Width -> {WSDM, 6.66}, MajoranaPhase -> 0, ParticleName -> "~S", FullName -> "singlet-DM", PDG -> 990012, PropagatorLabel -> "~S", PropagatorType -> S, PropagatorArrow -> Forward }Lagrangianを Weylで書くと、WeylToDiracコマンドを使う。
LtestW := ( I*(test1bar.sibar[mu].del[test1, mu]) + I*(test2.si[mu].del[test2bar, mu]) - MMAJOS test1.test2 - MMAJOS test1bar.test2bar ); Ltest := WeylToDirac[LtestW]
怒っているのはわかるがどうして欲しいのかわからない事が多い。わかった対処法を書いておく。
[1]
Get::noopen: "Cannot open "FAToFR.m"."
[2]
Weyl::Chirality: Warning: Dirac fermions must have both a left and right-handed Weyl component.
[3]
Part::partd: Part specification Null[[1]] is longer than depth of object.
M$MixingsDescription = { Mix["MM"] == { MassBasis -> {DM1[_], DM2[_], DM3[_]} , ... , Inverse -> True} <---- ここを }; にしていませんか?
}
[4]
Warning: Complex piece found in parameter Vmat1x3.
Setting it equal to its real part.
Warning: Complex parts of parameters are set to their real part.
Further printing suppressed.
Value -> { Vmat[i_,j_]:> ReV[i,j]+I*ImV[i,j]}
で定義したら、calchep file を作るときにでたエラーメッセージ。勝手に実数化されても非常に困るが、どうしていいかわからなかったため、
calchep file の func1.mdlの該当箇所を手で直した。そのとき虚数単位は大文字ではなく小文字を使う事。 つまり
I
ではなく
i
を使う事。
手で直すと、いろんなところに不具合が生じる、例えばカップリングが正しく定義されなかったりする。なので、このエラーがでたときは、Calchepの模型ファイルは信用できない。対処法は、複素数のカップリングをいっさい使わないこと。上の例でいえば、Vmat を使って、場やラグランジアンを書くと非常に便利だが、それをせずに、ReV と ImV であらわに全てを書けばよい。ただし、そのぶん、ラグラジアンがむやみに複雑になるので、模型ファイルを書くときに時間がかかるようになる。(1秒で終わっていたのが10分程度かかるようになった。) FeynArtsのファイルでは複素を使っても怒られないので、FeynArts用とCalchep用で、別のfrファイルを用意した方がいいのかもしれない。
In[1]:= Vectorize[{ (a + I*b)/Sqrt[2] , (c + I*d)/Sqrt[2] }] Out[1]= {a,b,c,d}
ゴースト場は {U(1), SU(2)} の順に4成分.
doublet は the SM Higgs field の VEV 以外の部分.
doublet0 は the SM Higgs field の VEV の部分, {0, vev/sqrt{2} }
gh = {ghB, ghWi[1], ghWi[2], ghWi[3]}; ghbar = {ghBbar, ghWibar[1], ghWibar[2], ghWibar[3]}; doublet = Expand[{(-I phi1 - phi2)/Sqrt[2], Phi[2]} /. vev -> 0]; doublet0 = {0, vev/Sqrt[2]};
generators は the SM Higgs field にとってのゲージ変換の生成子の(-1)倍。ゲージカップリングも付随する。左から {U(1), SU(2)} で4成分。SU(2) は 1, 2, 3 成分。+,-,3 ではない。
generators = {-I/2 g1 IdentityMatrix[2], -I/2 gw PauliSigma[1], -I/2 gw PauliSigma[2], -I/2 gw PauliSigma[3]};ヒッグス場の無限小のゲージ変換を下のち、4成分に直したものをつくり 4x4 行列を作る。
LGhphi = Plus @@ Flatten[Table[-ghbar[[kkk]].gh[[lll]] Vectorize[generators[[kkk]].doublet0].Vectorize[generators[[lll]].(doublet + doublet0)] , {kkk, 4}, {lll, 4}]] /. togoldstones;ここではゴースト場のラグランジアンを、ゲージ場の gauge eigenstate で書いている。これは全てのゲージがファインマンゲージで固定しているので、mass eigenstate と gauge eigenstate のゲージ固定項がユニタリー変換でつながることを利用しているはずである。kinetic mixing のある場合にはこれが使えないので、kinetic mixing を解いた後のラグランジアンを gauge eigenstate として出発するのが良いと思われる。
QuantumNumbers : OK Quantumnumbers : not OK
It seems not allowed to use both capital and small characters in parameter names,
MmajoS : error MMAJOS : No problesCheckMassSpectrum does not work for weyl fermions. All weyl fermions should be transformed into 4-components fields via WeylToDirac[] command.
[2]質問:
WeylToDirac[]
をしたあと、mathematica でラグランジアンを表示させたら、たくさん
Private
という文字がありましたが、どうすればよいでしょうか。
回答: fr ファイルのどこかで間違ったので直しましょう。例えば、 ClassName と Definitions で違う名前になっていませんか。
[3]質問:
CheckKineticTermNormalisation[]
をすると、非対角成分が発見されましたとのメッセージとともに項が表示されるのですが、よく見ると全微分になって消える項です。全微分は落とすというコマンドは無いのでしょうか?
回答:わかりません!
[4]SU(2)の基本表現になっている Vector-like な fermionをWeyl表現で作る場合、
両方左巻きで定義するのは構わないが、そのとき、左巻きで定義した右巻きは
反対称行列で適当にSU(2)の足を上下しないといけないので注意:
W[2] == { ClassName -> DUPchi, Chirality -> Left, SelfConjugate -> False }, W[3] == { ClassName -> DUPxi, Chirality -> Left, SelfConjugate -> False }, W[4] == { ClassName -> DDOWNchi, Chirality -> Left, SelfConjugate -> False }, W[5] == { ClassName -> DDOWNxi, Chirality -> Left, SelfConjugate -> False }, W[11] == { ClassName -> DDMchi , Unphysical -> True , Chirality -> Left , Indices -> {Index[SU2D]} , FlavorIndex -> SU2D , SelfConjugate -> False , QuantumNumbers -> {Y -> 1/2} , Definitions -> { DDMchi[sp1_,1] :> DUPchi[sp1], DDMchi[sp1_,2] :> DDOWNchi[sp1] } }, W[12] == { ClassName -> DDMxi , Unphysical -> True , Chirality -> Left , Indices -> {Index[SU2D]} , FlavorIndex -> SU2D , SelfConjugate -> False , QuantumNumbers -> {Y -> -1/2} (* これだとうまくいかない。 , Definitions -> { DDMxi[sp1_,1] :> DUPxi[sp1], DDMxi[sp1_,2] :> DDOWNxi[sp1] } *) (* こうする *) , Definitions -> { DDMxi[sp1_,1] :> DDOWNxi[sp1], DDMxi[sp1_,2] :> -DUPxi[sp1] } },それに伴い質量項も面倒になる。
-MDDM DDMxi[sp,j].DDMchi[sp,k] Eps[j,k] -MDDM DDMxibar[sp,j].DDMchibar[sp,k] Eps[j,k]
たとえば gs というパラメタを定義するときに Value -> Sqrt[4 Pi aS] でも Definitions -> { gs -> Sqrt[4 Pi aS]} でもパラメタを定義できるが、mathematicaで計算するときに、前者は gs をそのまま使うが、後者は Sqrt[4 Pi aS] で置き換えてしまう。例えば、CKM行列なら、前者だと V_{CKM}のままで、後者だと sin cos の汚い格好ででてくる。質量行列を自分で定義する場合は後者が便利かもしれない。
[5]ParticleName にプライム付きの名前を指定するとUFOファイルをMadgraphに読ませるところで怒られる。
例えば、
W'
は
WP
とかにする。